package com.object.module.lq.sys.service.impl;

import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.object.utils.MyQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.object.utils.Q;
import org.springframework.stereotype.Service;
import com.object.module.lq.sys.service.TModelConfigService;
import com.object.dao.sys.TModelConfigMapper;
import com.object.module.lq.sys.entity.bean.TModelConfig;


/**
 * 模型配置
 **/
@Service
public class TModelConfigServiceImpl extends ServiceImpl<TModelConfigMapper, TModelConfig> implements TModelConfigService {
    @Override
    public Q<List<TModelConfig>> listPage(Map<String, Object> params, Boolean isPage) {
        MyQueryWrapper<TModelConfig> wrapper = new MyQueryWrapper<>(params, TModelConfig.class);
        QueryWrapper<TModelConfig> queryWrapper = wrapper.ConstructQuery();
        String modelName = String.valueOf(params.get("modelName"));
        queryWrapper.eq(StringUtils.isNotBlank(modelName)&&!modelName.equals("null"), "model_name", modelName);
        if (isPage) {
            return wrapper.pageResponse(this, queryWrapper);
        }
        return new Q<List<TModelConfig>>().ok(list(queryWrapper));
    }

    @Override
    public Q updateModeStatus(TModelConfig tModelConfig) {
        update(new LambdaUpdateWrapper<TModelConfig>()
                .set(TModelConfig::getModeStatus, false)
                .eq(TModelConfig::getModeStatus, true)
        );
        update(new LambdaUpdateWrapper<TModelConfig>()
                .set(TModelConfig::getModeStatus, true)
                .eq(TModelConfig::getId, tModelConfig.getId())
        );
        return Q.ok();
    }
}
